-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nav experiment #1603
Merged
Merged
Nav experiment #1603
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Implement A/B experiment for sticky navigation.
Explanation
layout.server.ts
, assigning adistinctId
based off of available request headers. This is persisted in memory. The data from the feature flag for a given user is returned.distinctId
is passed into a childlayout.ts
via the data, and in the browser we initialize the PostHog client that tracks events like button clicks etc. with the distinctId that is created in the server layout. This is also explicitly persisted in memory. All thedata
is then passed to a rootpage.ts
.$page.data
, we access theisStickyNav
variable inMain.svelte
which is the parent wrapper for pages with the default header.API
Inside of
src/lib/experiments.ts
there's a new function calledgetFeatureFlag
; when we add new experiments via the PostHog UI, we should add the key, as well as the variant names to theexperiments
object, which will ensure that we always have typesafety, and parity when we use our feature flags.Test Plan
Manual
Related PRs and Issues
(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)
Have you read the Contributing Guidelines on issues?
(Write your answer here.)